package com.woniuxy.utils;


import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @Author:mayuhang
 *  字符串日期转换成date类型;Converter<String, Date> 接口，
 *  String是source源对象，Date是对应Target，转换后的目标
 */
@Component
public class String2Date implements Converter<String, Date> {
    /**
     *
     * @param source 传入一个格式，前端传入的日期字符串
     * @return 返回一个格式，返回一个Date类型
     */
    @Override
    public Date convert(String source) {
        if ("".equals(source)||source == null) {
            return null;
        }
        System.out.println("传入的源内容： "+source);
        //日期格式转换 转换yyyy-MM-dd格式
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        //日期格式转换 转换yyyy/MM/dd格式
        SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy/MM/dd");
        //日期格式转换 转换yyyy/MM/dd格式
        SimpleDateFormat simpleDateFormat3 = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss");
        try {
            Date parse = simpleDateFormat.parse(source);
            return parse;
        } catch (ParseException e) {
            try {
                Date parse = simpleDateFormat2.parse(source);
                return parse;
            } catch (ParseException parseException) {
                try {
                    Date parse = simpleDateFormat3.parse(source);
                    return parse;
                } catch (ParseException exception) {
                    exception.printStackTrace();
                    System.err.println("格式太变态，我也转换不了了");
                }
            }
        }
        return null;
    }
}
